Distance-Time Graphs

Here you have two Distance-Time graphs on the same axes that each have 4 stages of motion which can be independently adjusted as required

Zero End

Drag

Zero End

Drag

h = false
by_3 = 6.3 (slider from -30 to 20, step 0.1)
bx_3 = 5 (slider from 0 to 20, step 0.1)
by_2 = -3.5 (slider from -20 to 20, step 0.1)
bx_2 = 8 (slider from 0 to 20, step 0.1)
by_1 = 14 (slider from -20 to 20, step 0.1)
bx_1 = 9.8 (slider from 0 to 20, step 0.1)
Scale = 2.3 (slider from 0 to 10, step 0.1)
B_0 = Point(yAxis)
By0: y(B_0)
Bx0: x(B_0)
B_1: (Bx0 + Scale * bx_1, By0 + Scale * by_1)
By1: y(B_1)
Bx1: x(B_1)
B_2: (Bx1 + Scale * bx_2, By1 + Scale * by_2)
By2: y(B_2)
Bx2: x(B_2)
g = true
ay_3 = 6.3 (slider from -30 to 20, step 0.1)
ax_3 = 10.5 (slider from 0 to 20, step 0.1)
ax_2 = 2.8 (slider from 0 to 20, step 0.1)
ay_2 = 12.5 (slider from -20 to 20, step 0.1)
ax_1 = 13.5 (slider from 0 to 20, step 0.1)
ay_1 = 2.5 (slider from -20 to 20, step 0.1)
A_0 = Point(yAxis)
Ay0: y(A_0)
Ax0: x(A_0)
A_1: (Ax0 + Scale * ax_1, Ay0 + Scale * ay_1)
Ay1: y(A_1)
Ax1: x(A_1)
A_2: (Ax1 + Scale * ax_2, Ay1 + Scale * ay_2)
Ay2: y(A_2)
Ax2: x(A_2)
a = Segment(A_0, A_1)
b = Segment(A_1, A_2)
A_3: (Ax2 + Scale * ax_3, Ay2 + Scale * ay_3)
c = Segment(A_2, A_3)
d = Segment(B_0, B_1)
e = Segment(B_1, B_2)
B_3: (Bx2 + Scale * bx_3, By2 + Scale * by_3)
f = Segment(B_2, B_3)
ay_4 = -3.7 (slider from -30 to 20, step 0.1)
ax_4 = 7 (slider from 0 to 20, step 0.1)
by_4 = 3.8 (slider from -30 to 20, step 0.1)
bx_4 = 9.3 (slider from 0 to 20, step 0.1)
Ax3: x(A_3)
Ay3: y(A_3)
By3: y(B_3)
A_4 = If(g ≟ false, (Ax3 + Scale * ax_4, Ay3 + Scale * ay_4), (Ax3 + Scale * ax_4, 0))
i = Segment(A_3, A_4)
Bx3: x(B_3)
B_4 = If(h ≟ false, (Bx3 + Scale * bx_4, By3 + Scale * by_4), (Bx3 + Scale * bx_4, 0))
j = Segment(B_3, B_4)